import os
import shutil

"""
    删除目标文件夹中与源文件夹中的文件同名但后缀不同的文件。

    参数:
    source_folder: str, 源文件夹的路径。
    target_folder: str, 目标文件夹的路径。
"""


def delete_different_extension_files(source_folder, target_folder):
    # 获取源文件夹中的所有文件
    source_files = os.listdir(source_folder)
    # 创建一个字典，存储源文件夹中的文件名和后缀名
    source_files_dict = {}
    for file in source_files:
        filename, file_extension = os.path.splitext(file)
        if filename in source_files_dict:
            source_files_dict[filename].append(file_extension)
        else:
            source_files_dict[filename] = [file_extension]

    # 遍历目标文件夹中的所有文件
    for file in os.listdir(target_folder):
        filename, file_extension = os.path.splitext(file)
        # 检查是否存在同名但不同后缀的文件
        if filename in source_files_dict:
            # 构造完整的文件路径
            file_path = os.path.join(target_folder, file)
            # 删除文件
            try:
                os.remove(file_path)
                print(f"Deleted '{file}' from '{target_folder}'")
            except Exception as e:
                print(f"Failed to delete '{file}'. Reason: {e}")


# 使用示例
source_folder = '/home/hello/桌面/标定/已经标定的'  # 替换为你的源文件夹路径
target_folder = '/home/hello/桌面/标定/素材视频保存的图片-2'  # 替换为你的目标文件夹路径
delete_different_extension_files(source_folder, target_folder)
